﻿using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.Application.Services;
using YaAppoint.Appointments;
using YaAppoint.ExamAppies;
using YaAppoint.Response;

namespace YaAppoint.ExamApplications
{
    [RemoteService(isEnabled: false)]
    /// <summary>
    /// 检查申请服务
    /// </summary>
    public interface IExamApplyAppService:IApplicationService
    {
        /// <summary>
        /// 获取已预约/未预约申请项目
        /// </summary>
        /// <param name="number"></param>
        Task<BackJson> GetApplyItemListAsync(string? number, Dictionary<string, object> userData, List<string> deviceTypeCodes, ApplyItemStatus status);

        /// <summary>
        /// 获取申请单列表下所有申请项目
        /// </summary>
        Task<List<ExamApplicationDto>> GetApplyItemListAsync(string applyNumbers);

        /// <summary>
        /// 获取已预约/未预约申请项目
        /// </summary>
        /// <param name="applyNumbers"></param>
        /// <param name="status">申请项目状态  已预约、未预约 </param>
        /// <returns></returns>
        Task<BackJson> GetApplyItemListAsync(string applyNumbers, ApplyItemStatus status);

        /// <summary>
        /// 同步申请单列表下包含的申请项目
        /// </summary>
        Task<BackJson> SyncApplyItemsAsync(string applyNumbers);
    }
}
